package cn.com.yiqi.wsc.service.order;

import cn.com.yiqi.wsc.common.Result;
import cn.com.yiqi.wsc.dao.order.criteria.OrderCriteria;
import cn.com.yiqi.wsc.dao.order.criteria.OrderRefundCriteria;
import cn.com.yiqi.wsc.entity.order.OrderLogistics;
import cn.com.yiqi.wsc.entity.order.OrderRefund;
import cn.com.yiqi.wsc.entity.order.OrderRefundLog;

/**
 * @author 何刚
 * @ClassName: ${class}
 * @Description: TODO
 * @date 2017/3/14
 */
public interface PortalOrderService {


    /**
     * 分页查询订单
     *
     * @param criteria
     * @return
     */
    Result pageList(OrderCriteria criteria);

    /**
     * 订单详情
     *
     * @param criteria
     * @return
     */
    Result detail(OrderCriteria criteria);


    /**
     * 支付详情
     *
     * @param criteria
     * @return
     */
    Result payDetail(OrderCriteria criteria);


    /**
     * 物流详情
     *
     * @param criteria
     * @return
     */
    Result shipLogisticsDetail(OrderCriteria criteria);


    /**
     * 添加物流信息
     *
     * @param orderLogistics
     * @return
     */
    Result insertLogistics(OrderLogistics orderLogistics);


    /**
     * 更新物流信息
     * @param orderLogistics
     * @return
     */
    Result updateLogistics(OrderLogistics orderLogistics);
    
    
    /**
     * 退款查询列表
     *
     * @param criteria 查询条件
     * @return
     */
    Result refundPageList(OrderRefundCriteria criteria);

    /**
     * 商家审核
     *
     * @param orderRefundLog
     * @return
     */
    Result refundCheckOrg(OrderRefundLog orderRefundLog);

    /**
     * 财务审核
     *
     * @param orderRefundLog
     * @return
     */
    Result refundCheckFinance(OrderRefundLog orderRefundLog);

    /**
     * 退款确认
     *
     * @param orderRefund
     * @return
     */
    Result refundConfirm(OrderRefund orderRefund);

    /**
     * 运营审核
     *
     * @param orderRefundLog
     * @return
     */
    Result refundCheckOperator(OrderRefundLog orderRefundLog);

    Result orderItems(Long orderId);

    Result refundLogList(Long refundId);

    /**
     * 提醒商家发送
     *
     * @param orderId
     * @return
     */
    Result notifyOrg(Integer orderId);
    /**
     * 平台订单详细的查询
     * @param criteria
     * @return
     */
    Result getPlatformOrderDetailForOutput(OrderCriteria criteria);
}
